package lib

import "sort"

func init() {
	Probs = append(Probs, Problem{
		Num:         253,
		Discription: "会议室2",
		Level:       1,
		Labels: map[string]int{
			"排序": 1,
			"贪心": 1,
		},
	})
}

func MinMeetingRooms(intervals [][]int) int {
	starts := make([]int, len(intervals))
	ends := make([]int, len(intervals))
	for i := range intervals {
		starts[i] = intervals[i][0]
		ends[i] = intervals[i][1]
	}

	sort.Ints(starts)
	sort.Ints(ends)

	//当前将开始的第一个会议
	i := 1
	//当前待结束的最后一个会议
	j := 0
	//同一时间内最少使用的会议室数量
	count := 1
	for i < len(intervals) {
		if starts[i] >= ends[j] {
			//释放一个会议室
			count--
			j++
		}

		//占用一个会议室
		count++
		i++
	}

	return count
}